/** * @license * Copyright (c) 2014, 2018, Oracle and/or its affiliates. * The Universal Permissive License (UPL), Version 1.0 */ "use strict";define(["ojs/ojcore","jquery","promise","ojs/ojcomponentcore","jqueryui-amd/position"],function(e,t){e.PopupService=function(){this.Init()},e.Object.createSubclass(e.PopupService,e.Object,"oj.PopupService"),e.PopupService.prototype.Init=function(){e.PopupService.superclass.Init.call(this)},e.PopupService.getInstance=function(t){return e.PopupService._popupService||(e.PopupService._popupService=new e.PopupServiceImpl),e.PopupService._popupService},e.PopupService.prototype.open=function(t){e.Assert.failedInAbstractFunction()},e.PopupService.prototype.close=function(t){e.Assert.failedInAbstractFunction()},e.PopupService.prototype.changeOptions=function(t){e.Assert.failedInAbstractFunction()},e.PopupService.prototype.triggerOnDescendents=function(t,r,i){e.Assert.failedInAbstractFunction()},e.PopupService.prototype.destroy=function(){e.PopupService._popupService=null},e.PopupService.MODALITY={NONE:"none",MODAL:"modal",MODELESS:"modeless"},e.PopupService.EVENT={POPUP_REMOVE:"ojPopupRemove",POPUP_CLOSE:"ojPopupClose",POPUP_REFRESH:"ojPopupRefresh",POPUP_AUTODISMISS:"ojPopupAutoDismiss",POPUP_BEFORE_OPEN:"ojPopupBeforeOpen",POPUP_AFTER_OPEN:"ojPopupAfterOpen",POPUP_BEFORE_CLOSE:"ojPopupBeforeClose",POPUP_AFTER_CLOSE:"ojPopupAfterClose"},e.PopupService.LAYER_LEVEL={TOP_LEVEL:"topLevel",NEAREST_ANCESTOR:"nearestAncestor"},e.PopupService.OPTION={POPUP:"popup",EVENTS:"events",MODALITY:"modality",LAUNCHER:"launcher",POSITION:"position",LAYER_SELECTORS:"layerSelectors",LAYER_LEVEL:"layerLevel",CONTEXT:"context",CUSTOM_ELEMENT:"customElement"},e.PopupServiceImpl=function(){this.Init()},e.Object.createSubclass(e.PopupServiceImpl,e.PopupService,"oj.PopupServiceImpl"),e.PopupServiceImpl.prototype.open=function(r){e.Assert.assertObject(r);var i=r[e.PopupService.OPTION.POPUP];e.Assert.assertPrototype(i,t);var o=e.ZOrderUtils.getStatus(i);if(o===e.ZOrderUtils.STATUS.UNKNOWN||o===e.ZOrderUtils.STATUS.CLOSE){var n=r[e.PopupService.OPTION.LAUNCHER];e.Assert.assertPrototype(n,t);var s=r[e.PopupService.OPTION.POSITION];e.Assert.assertObjectOrNull(s);var l=r[e.PopupService.OPTION.EVENTS];e.Assert.assertObject(l);var a=r[e.PopupService.OPTION.MODALITY];(!a||e.PopupService.MODALITY.MODELESS!==a&&e.PopupService.MODALITY.MODAL!==a)&&(a=e.PopupService.MODALITY.NONE);var p=r[e.PopupService.OPTION.LAYER_SELECTORS];e.Assert.assertString(p);var u=r[e.PopupService.OPTION.CUSTOM_ELEMENT],c=r[e.PopupService.OPTION.LAYER_LEVEL];(!c||e.PopupService.LAYER_LEVEL.TOP_LEVEL!==c&&e.PopupService.LAYER_LEVEL.NEAREST_ANCESTOR!==c)&&(c=e.PopupService.LAYER_LEVEL.NEAREST_ANCESTOR);var d=l[e.PopupService.EVENT.POPUP_BEFORE_OPEN];d&&t.isFunction(d)||(d=e.PopupServiceImpl._defaultBeforeOpenCallback);var _=l[e.PopupService.EVENT.POPUP_AFTER_OPEN];e.ZOrderUtils.setStatus(i,e.ZOrderUtils.STATUS.OPENING),e.DomUtils.setLogicalParent(i,n),e.ZOrderUtils.addToAncestorLayer(i,n,a,p,c,u);var O,v=function(){try{i.removeAttr("aria-hidden"),this._assertEventSink(),e.Components.subtreeShown(i[0])}catch(t){e.Logger.error("Error opening popup:\n%o",t)}finally{_&&_(r);var o=e.ZOrderUtils.getFirstAncestorLayer(i);e.Assert.assertPrototype(o,t),e.ZOrderUtils.applyEvents(o,l),e.ZOrderUtils.setStatus(i,e.ZOrderUtils.STATUS.OPEN)}};v=v.bind(this);try{O=d(r)}catch(t){e.Logger.error("Error before open popup:\n%o",t)}finally{O&&O instanceof Promise?O.then(v):v()}}else this._assertEventSink()},e.PopupServiceImpl._defaultBeforeOpenCallback=function(r){var i=r[e.PopupService.OPTION.POPUP];e.Assert.assertPrototype(i,t);var o=r[e.PopupService.OPTION.POSITION];i.show(),o&&i.position(o)},e.PopupServiceImpl.prototype.close=function(r){e.Assert.assertObject(r);var i=r[e.PopupService.OPTION.POPUP];e.Assert.assertPrototype(i,t);var o=e.ZOrderUtils.getOpenPopupLayer(i);e.Assert.assertPrototype(o,t);var n=r[e.PopupService.OPTION.EVENTS];if(n=n?t.extend(e.ZOrderUtils.getEvents(o),n):r[e.PopupService.OPTION.EVENTS]=e.ZOrderUtils.getEvents(o),e.ZOrderUtils.getStatus(i)===e.ZOrderUtils.STATUS.OPEN&&n){var s=n[e.PopupService.EVENT.POPUP_BEFORE_CLOSE];s&&t.isFunction(s)||(s=e.PopupServiceImpl._defaultBeforeCloseCallback);var l=n[e.PopupService.EVENT.POPUP_AFTER_CLOSE];e.ZOrderUtils.setStatus(i,e.ZOrderUtils.STATUS.CLOSING),e.ZOrderUtils.applyEvents(o,{});var a,p=function(){try{i.hide(),i.attr("aria-hidden","true"),i.css({top:"auto",bottom:"auto",left:"auto",right:"auto"}),e.ZOrderUtils.removeFromAncestorLayer(i),e.DomUtils.setLogicalParent(i,null),this._assertEventSink(),e.Components.subtreeHidden(i[0])}catch(t){e.Logger.error("Error closing popup:\n%o",t)}finally{l&&t.isFunction(l)&&l(r),e.ZOrderUtils.setStatus(i,e.ZOrderUtils.STATUS.CLOSE)}};p=p.bind(this);try{a=s(r)}catch(t){e.Logger.error("Error before close popup:\n%o",t)}finally{a&&a instanceof Promise?a.then(p):p()}}else this._assertEventSink()},e.PopupServiceImpl._defaultBeforeCloseCallback=function(r){var i=r[e.PopupService.OPTION.POPUP];e.Assert.assertPrototype(i,t),i.hide()},e.PopupServiceImpl.prototype.changeOptions=function(r){e.Assert.assertObject(r);var i=r[e.PopupService.OPTION.POPUP];if(e.Assert.assertPrototype(i,t),e.ZOrderUtils.getStatus(i)===e.ZOrderUtils.STATUS.OPEN){var o=e.ZOrderUtils.getOpenPopupLayer(i);e.Assert.assertPrototype(o,t);var n=r[e.PopupService.OPTION.EVENTS];n&&e.ZOrderUtils.applyEvents(o,n);var s=r[e.PopupService.OPTION.MODALITY];s&&e.ZOrderUtils.applyModality(o,s);var l=r[e.PopupService.OPTION.LAYER_SELECTORS];e.StringUtils.isEmptyOrUndefined(l)||o.attr("class",l)}},e.PopupServiceImpl.prototype.triggerOnDescendents=function(t,r,i){if(e.ZOrderUtils.isPopupOpen(t)){var o={};o.event=r,o.argsArray=i;var n=e.ZOrderUtils.getFirstAncestorLayer(t);e.ZOrderUtils.postOrderVisit(n,this._triggerOnDescendentsVisitCallback,o)}},e.PopupServiceImpl.prototype._triggerOnDescendentsVisitCallback=function(r,i){var o=i.event,n=i.argsArray,s=e.ZOrderUtils.getEvents(r);return s&&t.isFunction(s[o])&&s[o].apply(this,n),e.ZOrderUtils.VISIT_RESULT.ACCEPT},e.PopupServiceImpl.prototype._assertEventSink=function(){var t=e.ZOrderUtils.hasPopupsOpen(),r=this._callbackEventFilter;if(!t&&r){window.removeEventListener("resize",e.PopupServiceImpl._refreshCallback,!0),window.removeEventListener("scroll",e.PopupServiceImpl._refreshCallback,!0),(s=document.documentElement).removeEventListener("mousewheel",e.PopupServiceImpl._refreshCallback,!0),s.removeEventListener("DOMMouseScroll",e.PopupServiceImpl._refreshCallback,!0),this._callbackEventFilter=null;for(var i=0;i0)return e.ZOrderUtils.VISIT_RESULT.REJECT;var o=e.ZOrderUtils.getEvents(r);return o&&t.isFunction(o[e.PopupService.EVENT.POPUP_REFRESH])&&o[e.PopupService.EVENT.POPUP_REFRESH](),e.ZOrderUtils.VISIT_RESULT.ACCEPT},e.PopupServiceImpl.prototype.destroy=function(){e.PopupServiceImpl.superclass.destroy.call(this)},e.PopupServiceImpl._FOCUS_WITHIN_SELECTOR="oj-focus-within",e.PopupServiceImpl._REDISTRIBUTE_EVENTS=["focus","mousedown","keydown"],e.PopupServiceImpl._COPY_SAFE_EVENT_PROPERTIES={altKey:!0,bubbles:!0,cancelable:!0,ctrlKey:!0,currentTarget:!0,eventPhase:!0,metaKey:!0,relatedTarget:!0,shiftKey:!0,target:!0,timeStamp:!0,view:!0,which:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pageX:!0,pageY:!0,screenX:!0,screenY:!0,toElement:!0,char:!0,charCode:!0,key:!0,keyCode:!0},e.PopupServiceImpl._REFRESH_DELAY=10,e.ZOrderUtils={},e.ZOrderUtils.STATUS={UNKNOWN:0,OPENING:1,OPEN:2,CLOSING:3,CLOSE:4},e.ZOrderUtils._STATUS_DATA="oj-popup-status",e.ZOrderUtils.getStatus=function(r){r instanceof Element&&(r=t(r));var i=r.data(e.ZOrderUtils._STATUS_DATA);return isNaN(i)?e.ZOrderUtils.STATUS.UNKNOWN:i},e.ZOrderUtils.setStatus=function(r,i){r instanceof Element&&(r=t(r)),i>=1&&i<=4&&r.data(e.ZOrderUtils._STATUS_DATA,i)},e.ZOrderUtils.getFirstAncestorLayer=function(t){if(!t)return e.ZOrderUtils.getDefaultLayer();for(var r=t;r&&r.length>0&&r.attr(e.ZOrderUtils._SURROGATE_ATTR)!==e.ZOrderUtils._DEFAULT_LAYER_ID;){if(e.ZOrderUtils._hasSurrogate(r[0]))return r;r=r.parent()}return e.ZOrderUtils.getDefaultLayer()},e.ZOrderUtils.getDefaultLayer=function(){var r=t(document.getElementById(e.ZOrderUtils._DEFAULT_LAYER_ID));return r.length>0?r:((r=t("
")).attr("role","presentation"),r.attr("id",e.ZOrderUtils._DEFAULT_LAYER_ID),r.prependTo(t(document.body)),r)},e.ZOrderUtils.addToAncestorLayer=function(r,i,o,n,s,l){var a=r[0];if(e.ZOrderUtils._hasSurrogate(a.parentNode))throw new Error("JET Popup is already open - id: "+a.getAttribute("id"));var p=e.ZOrderUtils.getFirstAncestorLayer(s===e.PopupService.LAYER_LEVEL.TOP_LEVEL?null:i),u=t("
"),c=r.attr("id");e.StringUtils.isEmptyOrUndefined(c)?u.uniqueId():u.attr("id",[c,"layer"].join("_")),u.attr("role","presentation"),u.addClass(n),r.after(u);e.ZOrderUtils._createSurrogate(u,l);e.Components.subtreeDetached(a),r.appendTo(u),r.data(e.ZOrderUtils._LAYER_ID_DATA,u.attr("id")),u.appendTo(p),e.Components.subtreeAttached(a),e.ZOrderUtils.applyModality(u,o)},e.ZOrderUtils.applyEvents=function(r,i,o){if(!o){var n=r.attr(e.ZOrderUtils._SURROGATE_ATTR);n&&(o=t(document.getElementById(n)))}r.data(e.ZOrderUtils._EVENTS_DATA,i),o&&o.length>0&&i&&t.isFunction(i[e.PopupService.EVENT.POPUP_REMOVE])&&e.Components.setComponentOption(o[0],"beforeDestroy",i[e.PopupService.EVENT.POPUP_REMOVE])},e.ZOrderUtils.getEvents=function(t){return t.data(e.ZOrderUtils._EVENTS_DATA)},e.ZOrderUtils._createSurrogate=function(r,i){var o="script";i&&(o="oj-surrogate");var n=t(document.createElement(o)),s=r.attr("id");e.StringUtils.isEmptyOrUndefined(s)||n.attr("id",[s,"surrogate"].join("_")),i&&n.attr("data-oj-binding-provider","none"),n.insertBefore(r),i||n.ojSurrogate();var l=n.attr("id");return r.attr(e.ZOrderUtils._SURROGATE_ATTR,l),n},e.ZOrderUtils._removeSurrogate=function(r){var i=r.attr(e.ZOrderUtils._SURROGATE_ATTR);r.removeAttr(e.ZOrderUtils._SURROGATE_ATTR);var o=t(document.getElementById(i));r.insertAfter(o),o.length>0&&e.Components.setComponentOption(o[0],"beforeDestroy",null),o.remove()},e.ZOrderUtils.getOpenPopupLayer=function(r){var i=r.parent();if(!i||0===i.length){var o=r.data(e.ZOrderUtils._LAYER_ID_DATA);i=t(document.getElementById(o))}return i},e.ZOrderUtils.removeFromAncestorLayer=function(t){var r=e.ZOrderUtils.getOpenPopupLayer(t);e.ZOrderUtils.preOrderVisit(r,e.ZOrderUtils._closeDescendantPopupsCallback),e.ZOrderUtils._removeOverlayFromAncestorLayer(r),r.removeData(e.ZOrderUtils._EVENTS_DATA),r.removeData(e.ZOrderUtils._MODALITY_DATA),t.removeData(e.ZOrderUtils._LAYER_ID_DATA);var i=t[0];e.Components.subtreeDetached(i),e.ZOrderUtils._removeSurrogate(r),i&&i.parentElement?e.DomUtils.unwrap(t,r):r.remove(),e.Components.subtreeAttached(i)},e.ZOrderUtils._closeDescendantPopupsCallback=function(r,i){if(i.level>0)return e.ZOrderUtils.VISIT_RESULT.REJECT;var o=r.data(e.ZOrderUtils._EVENTS_DATA);return o&&t.isFunction(o[e.PopupService.EVENT.POPUP_CLOSE])&&o[e.PopupService.EVENT.POPUP_CLOSE](),e.ZOrderUtils.VISIT_RESULT.ACCEPT},e.ZOrderUtils.applyModality=function(t,r){var i=t.data(e.ZOrderUtils._MODALITY_DATA);if(t.data(e.ZOrderUtils._MODALITY_DATA,r),e.StringUtils.isEmptyOrUndefined(i))e.PopupService.MODALITY.MODAL===r?e.ZOrderUtils._addOverlayToAncestorLayer(t):e.ZOrderUtils._removeOverlayFromAncestorLayer(t);else{if(i===r)return;r!==i&&r===e.PopupService.MODALITY.MODAL?e.ZOrderUtils._addOverlayToAncestorLayer(t):e.ZOrderUtils._removeOverlayFromAncestorLayer(t)}},e.ZOrderUtils.hasModalDialogOpen=function(){for(var r=e.ZOrderUtils.getDefaultLayer().children(),i=r.length-1;i>-1;i--){if(t(r[i]).hasClass(e.ZOrderUtils._OVERLAY_SELECTOR))return!0}return!1},e.ZOrderUtils._addOverlayToAncestorLayer=function(r){var i=t("
");i.addClass(e.ZOrderUtils._OVERLAY_SELECTOR),i.addClass(r[0].className),i.attr("role","presentation");var o=r.attr("id");e.StringUtils.isEmptyOrUndefined(o)?i.uniqueId():i.attr("id",[o,"overlay"].join("_")),r.before(i);var n=i.attr("id");r.attr(e.ZOrderUtils._OVERLAY_ATTR,n)},e.ZOrderUtils._removeOverlayFromAncestorLayer=function(r){var i=r.attr(e.ZOrderUtils._OVERLAY_ATTR);e.StringUtils.isEmptyOrUndefined(i)||(r.removeAttr(e.ZOrderUtils._OVERLAY_ATTR),t(document.getElementById(i)).remove())},e.ZOrderUtils.VISIT_RESULT={ACCEPT:0,REJECT:1,COMPLETE:2},e.ZOrderUtils._VISIT_TRAVERSAL={PRE_ORDER:0,POST_ORDER:1},e.ZOrderUtils.postOrderVisit=function(t,r,i){i||(i={}),i.level=0,i.type=e.ZOrderUtils._VISIT_TRAVERSAL.POST_ORDER,e.ZOrderUtils._visitTree(t,r,i)},e.ZOrderUtils.preOrderVisit=function(t,r,i){i||(i={}),i.level=0,i.type=e.ZOrderUtils._VISIT_TRAVERSAL.PRE_ORDER,e.ZOrderUtils._visitTree(t,r,i)},e.ZOrderUtils._visitTree=function(r,i,o){for(var n=o.level,s=r.children(),l=s.length-1;l>-1;l--){var a=t(s[l]);if(e.ZOrderUtils._hasSurrogate(a[0])){var p;if(o.type===e.ZOrderUtils._VISIT_TRAVERSAL.PRE_ORDER){if((p=i(a,o))===e.ZOrderUtils.VISIT_RESULT.COMPLETE)return p;if(p===e.ZOrderUtils.VISIT_RESULT.REJECT)break}if(o.level=n+1,p=e.ZOrderUtils._visitTree(a,i,o),o.level=n,p===e.ZOrderUtils.VISIT_RESULT.COMPLETE)return p;if(o.type===e.ZOrderUtils._VISIT_TRAVERSAL.POST_ORDER){if((p=i(a,o))===e.ZOrderUtils.VISIT_RESULT.COMPLETE)return p;if(p===e.ZOrderUtils.VISIT_RESULT.REJECT)break}}}return e.ZOrderUtils.VISIT_RESULT.ACCEPT},e.ZOrderUtils._hasSurrogate=function(t){return!(!t||1!==t.nodeType||!t.hasAttribute(e.ZOrderUtils._SURROGATE_ATTR))},e.ZOrderUtils.hasPopupsOpen=function(){return e.ZOrderUtils.getDefaultLayer().children().length>0},e.ZOrderUtils.getOpenPopupCount=function(){var t={popupCount:0},r=e.ZOrderUtils.getDefaultLayer();return e.ZOrderUtils.preOrderVisit(r,e.ZOrderUtils._openPopupCountCallback,t),t.popupCount},e.ZOrderUtils._openPopupCountCallback=function(t,r){return r.popupCount=r.popupCount+1,e.ZOrderUtils.VISIT_RESULT.ACCEPT},e.ZOrderUtils.findOpenPopups=function(){var r={},i=[];r.popups=i;var o=e.ZOrderUtils.getDefaultLayer();return e.ZOrderUtils.preOrderVisit(o,e.ZOrderUtils._openPopupsCallback,r),i=r.popups,t(i)},e.ZOrderUtils._openPopupsCallback=function(t,r){return r.popups.push(t[0]),e.ZOrderUtils.VISIT_RESULT.ACCEPT},e.ZOrderUtils.isAboveTopModalLayer=function(r){if(!r||!e.ZOrderUtils.hasPopupsOpen())return!0;var i,o,n=(i={topLayer:null},o=e.ZOrderUtils.getDefaultLayer(),e.ZOrderUtils.preOrderVisit(o,function(r,i){if(i.level>0)return e.ZOrderUtils.VISIT_RESULT.REJECT;var o=i.topLayer;o?e.ZOrderUtils.compareStackingContexts(t(r),t(o))>0&&(i.topLayer=r):i.topLayer=r},i),i.topLayer?i.topLayer[0]:void 0);if(!n)return!0;var s=function(r){var i={topModalPopup:null};return r.hasAttribute(e.ZOrderUtils._OVERLAY_ATTR)&&(i.topModalPopup=t(r)),e.ZOrderUtils.postOrderVisit(t(r),function(t,r){return t[0].hasAttribute(e.ZOrderUtils._OVERLAY_ATTR)?(r.topModalPopup=t,e.ZOrderUtils.VISIT_RESULT.COMPLETE):e.ZOrderUtils.VISIT_RESULT.ACCEPT},i),i.topModalPopup?i.topModalPopup[0]:void 0}(n);return!s||(e.DomUtils.isAncestorOrSelf(s,r)||e.ZOrderUtils.compareStackingContexts(t(s),t(r))<0)},e.ZOrderUtils.compareStackingContexts=function(r,i){function o(r,i){for(var o=["absolute","relative","fixed"],n=r.parents(),s=[],l=n.length-1;l>-1;l--)s.push(t(n[l]));(n=s).push(r);var a=[],p=0;for(l=0;l-1&&_>0)a.push({weight:[p++,_,O],order:[O]});else if(d<1)a.push({weight:[p++,1,O],order:[O]});else{if(!i)continue;a.push({weight:[0,0,O],order:[O]})}}return a}function n(e,t){for(var r=Math.max(e.length,t.length),i=0;i0&&r.remove()}},e.PopupLiveRegion.prototype.announce=function(r){if(!e.StringUtils.isEmpty(r)){var i=e.PopupLiveRegion._getLiveRegion();i.children().remove(),t("
").text(r).appendTo(i)}},e.PopupLiveRegion._getLiveRegion=function(){var r=t(document.getElementById(e.PopupLiveRegion._POPUP_LIVE_REGION_ID));return 0===r.length&&((r=t("
")).attr({id:e.PopupLiveRegion._POPUP_LIVE_REGION_ID,role:"log","aria-live":"polite","aria-relevant":"additions"}),r.addClass("oj-helper-hidden-accessible"),r.appendTo(document.body)),r},e.PopupLiveRegion._POPUP_LIVE_REGION_ID="__oj_popup_arialiveregion",e.PopupSkipLink=function(r,i,o,n){e.Assert.assertPrototype(r,t),e.Assert.assertString(i),e.Assert.assertFunction(o),e.Assert.assertStringOrNull(n),this._sibling=r,this._message=i,this._callback=o,this._id=n,this.Init()},e.Object.createSubclass(e.PopupSkipLink,e.Object,"oj.PopupSkipLink"),e.PopupSkipLink.prototype.Init=function(){e.PopupSkipLink.superclass.Init.call(this);var r=this._sibling,i=this._callback,o=this._message;this._message=null;var n=this._id;this._id=null;var s=t("").attr({tabindex:"-1",href:"#",role:"link"});s.attr("id",n),s.addClass("oj-helper-hidden-accessible"),s.text(o),s.insertAfter(r),s.on("click",e.PopupSkipLink._activateHandler.bind(this,i)),s.on("keydown keyup keypress",e.PopupSkipLink._keyHandler),r.data(e.PopupSkipLink._SKIPLINK_ATTR,s)},e.PopupSkipLink._activateHandler=function(t,r){e.ZOrderUtils.eatEvent(r),window.setImmediate(t)},e.PopupSkipLink._keyHandler=function(r){r.keyCode===t.ui.keyCode.ENTER&&e.ZOrderUtils.eatEvent(r)},e.PopupSkipLink.prototype.destroy=function(){var t=this._sibling;if(delete this._sibling,delete this._callback,t){var r=t.data(e.PopupSkipLink._SKIPLINK_ATTR);t.removeData(e.PopupSkipLink._SKIPLINK_ATTR),r&&(r.off("click keydown keyup keypress"),r.remove())}},e.PopupSkipLink.prototype.getLink=function(){var t,r=this._sibling;return r&&(t=r.data(e.PopupSkipLink._SKIPLINK_ATTR)),t},e.PopupSkipLink._SKIPLINK_ATTR="oj-skiplink",e.PopupWhenReadyMediator=function(e,t,r,i){this._element=e,this._operation=t,this._widgetName=r,this._isCustomElement=!!i,this.Init()},e.Object.createSubclass(e.PopupWhenReadyMediator,e.Object,"oj.PopupWhenReadyMediator"),e.PopupWhenReadyMediator.prototype.Init=function(){e.PopupWhenReadyMediator.superclass.Init.call(this),this._resolvedQueue=[],this._callback=this._eventHandler.bind(this);var t=this._operation,r=["oj"];this._isCustomElement?(r.push(t.charAt(0).toUpperCase()),r.push(t.slice(1))):r.push(t);var i=this._eventType=r.join("");this._element.on(i,this._callback);var o=e.Context.getContext(this._element[0]).getBusyContext(),n={description:this._getBusyStateDescription.bind(this,this._element,this._operation,this._widgetName)},s=o.addBusyState(n);this.AddPromiseExecutor(s),this._whenReadyPromise=new Promise(this.AddPromiseExecutor.bind(this))},e.PopupWhenReadyMediator.prototype._getBusyStateDescription=function(e,t,r){return r+" identified by '"+e.attr("id")+"' is busy animating on the '"+t+"' operation."},e.PopupWhenReadyMediator.prototype._deliverResolved=function(t){var r=this._resolvedQueue;this._resolvedQueue=null,t=t||this._operation,this._operation=null;for(var i=0;i",i?"-":"+");else for(var a=0;a",i?"-":"+"))}}return o},e.PositionUtils.normalizePositionOf=function(e,t,r){return"event"===e?r:null==e||"launcher"===e?t:e},e.PositionUtils._normalizeEventForPosition=function(e){t.each(["pageX","pageY"],function(t,r){if(e&&void 0===e[r]&&e.originalEvent){var i=e.originalEvent,o=i.type,n="touchstart"===o||"touchmove"===o?"touches":"touchend"===o?"changedTouches":null;if(n){var s=i[n][0];s&&(e[r]=s[r])}}})},e.PositionUtils._ALIGN_RULE_PROPERTIES=["my","at"],e.PositionUtils._SUB_ALIGN_RULE_PROPERTIES=["vertical","horizontal"],e.PositionUtils.isAligningPositionClipped=function(t){if(t.target&&t.target.height>0&&t.target.width>0){var r=t.target.element;return!e.PositionUtils.isWithinViewport(r)}return!1},e.PositionUtils.isWithinViewport=function(r){function i(t,r){if(["hidden","scroll","auto"].indexOf(r.overflowY)>-1){if(t.bottom-r.top<-1)return!1;var i="auto"===r.overflowX&&r.scrollWidth>r.innerWidth||"scroll"===r.overflowX?e.DomUtils.getScrollBarWidth():0;if(r.bottom-i-t.top<1)return!1}return!(["hidden","scroll","auto"].indexOf(r.overflowX)>-1&&(i="auto"===r.overflowY&&r.scrollHeight>r.innerHeight||"scroll"===r.overflowY?e.DomUtils.getScrollBarWidth():0,t.right-(r.left+("rtl"===e.DomUtils.getReadingDirection()?i:0))<-1||t.left-(r.right-("ltr"===e.DomUtils.getReadingDirection()?i:0))>-1))}function o(e){return"visible"!==e.css("overflow-x")||"visible"!==e.css("overflow-y")}function n(e){var r=e[0];if(1===r.nodeType){var i=t.extend({},r.getBoundingClientRect());return i.overflowX=e.css("overflow-x"),i.overflowY=e.css("overflow-y"),i.innerHeight=e.innerHeight(),i.innerWidth=e.innerWidth(),i.scrollHeight=r.scrollHeight,i.scrollWidth=r.scrollWidth,i}return{height:0,width:0}}function s(t){return["fixed","absolute","relative"].indexOf(t.css("position"))>-1&&(Math.abs(e.DomUtils.getCSSLengthAsInt(t.css("top")))>0||Math.abs(e.DomUtils.getCSSLengthAsInt(t.css("bottom")))>0||Math.abs(e.DomUtils.getCSSLengthAsInt(t.css("left")))>0||Math.abs(e.DomUtils.getCSSLengthAsInt(t.css("right")))>0)}if(!r)return!1;if(t.isWindow(r[0])||s(r))return!0;for(var l=n(r),a=!0,p=r.parent();a&&p&&p.length>0&&"BODY"!==p[0].nodeName&&1===p[0].nodeType&&!s(p);){if(o(p)){var u=n(p);u.height>0&&u.width>0&&(a=i(l,u))}p=p.parent()}return a},e.PositionUtils._ANIMATION_TRANSFORM_ORIGIN_RULES={"right-top":"right top","right-middle":"right center","right-bottom":"right bottom","left-top":"left top","left-middle":"left center","left-bottom":"left bottom","center-top":"center top","center-middle":"center center","center-bottom":"center bottom"},e.PositionUtils._ALIGN_MNEMONIC_DATA="oj-popup-align-mnemonic",e.PositionUtils.captureTransformOriginAnimationEffectsOption=function(t,r){var i=[r.horizontal,r.vertical].join("-");t.data(e.PositionUtils._ALIGN_MNEMONIC_DATA,i)},e.PositionUtils.addTransformOriginAnimationEffectsOption=function(t,r){var i,o;e.StringUtils.isString(r)?(o=!0,i=r):(o=!1,i=JSON.stringify(r));var n=/#myPosition/g;if(i.match(n)){var s=t.data(e.PositionUtils._ALIGN_MNEMONIC_DATA);e.StringUtils.isEmptyOrUndefined(s)&&(s="center-middle");var l=e.PositionUtils._ANIMATION_TRANSFORM_ORIGIN_RULES[s];i=i.replace(n,l),r=o?i:JSON.parse(i)}return r},e.PositionUtils._JQUI_MNEMONIC_GRP_REGX=/^(\w+)(\+|\-)?(\d+)?/,e.PositionUtils._VERTICAL_ENUM_TST_REGX=/^top$|^center$|^bottom$/,e.PositionUtils._HORIZONTAL_ENUM_TST_REGX=/^start$|^left$|^center$|^end$|^right$/,e.PositionUtils._COLLISION_ENUM_TST_REGX=/^none$|^flip$|^flipfit$|^fit$|^flipcenter$/,e.PositionUtils._parsePositionNmnemonic=function(t,r){var i=[null,Number.NaN],o=e.PositionUtils._JQUI_MNEMONIC_GRP_REGX.exec(t);if(o[1]&&r.test(o[1])&&(i[0]=o[1],o[2])){var n=parseInt(o[3],10);isNaN(n)||(n*="-"===o[2]?-1:1,i[1]=n)}return i},e.PositionUtils._parseJSON=function(t){if(e.StringUtils.isString(t)&&/^{/.test(t)&&/}$/.test(t))try{return JSON.parse(t)}catch(e){}return null},e.PositionUtils._coerceMyAtToJet=function(r,i,o,n){var s=e.PositionUtils._parseJSON(i);s&&(i=s),(s=e.PositionUtils._parseJSON(o))&&(o=s),n||(n={});var l,a=t.extend({},n),p={x:0,y:0};if(o&&"x"in o&&"y"in o&&(p.x=e.DomUtils.getCSSLengthAsInt(o.x),p.y=e.DomUtils.getCSSLengthAsInt(o.y)),e.StringUtils.isString(i)){var u=i.split(/\s/);u.length>0&&!e.StringUtils.isEmpty(u[0])&&(l=e.PositionUtils._parsePositionNmnemonic(u[0],e.PositionUtils._HORIZONTAL_ENUM_TST_REGX))[0]&&(a.horizontal=l[0],isNaN(l[1])||(p.x=l[1])),u.length>1&&!e.StringUtils.isEmpty(u[1])&&(l=e.PositionUtils._parsePositionNmnemonic(u[1],e.PositionUtils._VERTICAL_ENUM_TST_REGX))[0]&&(a.vertical=l[0],isNaN(l[1])||(p.y=l[1]))}else i&&("horizontal"in i&&(l=e.PositionUtils._parsePositionNmnemonic(i.horizontal,e.PositionUtils._HORIZONTAL_ENUM_TST_REGX))[0]&&(a.horizontal=l[0],isNaN(l[1])||(p.x=l[1])),"vertical"in i&&(l=e.PositionUtils._parsePositionNmnemonic(i.vertical,e.PositionUtils._VERTICAL_ENUM_TST_REGX))[0]&&(a.vertical=l[0],isNaN(l[1])||(p.y=l[1])));var c={};return c[r]=a,c.offset=p,c},e.PositionUtils._coerceCollisionToJet=function(t,r){var i=r;return e.PositionUtils._COLLISION_ENUM_TST_REGX.test(t)&&(i=t),{collision:i}},e.PositionUtils._coerceOfToJet=function(r,i){var o=e.PositionUtils._parseJSON(r);o&&(r=o);var n=i;if(e.StringUtils.isString(r))n=r;else if(t.isWindow(r))n="window";else if(r instanceof Element||r instanceof t){(r=t(r)).uniqueId(),n="#"+function(e){for(var t=[],r=/\w|_|-/,i=0;i0?"+":""),i.push(Math.floor(n).toString()))}return i.join("")}var o={};["my","at"].forEach(function(e){if(r[e]){var t=[];t.push(i(e,"horizontal")),t.push(" "),t.push(i(e,"vertical")),o[e]=t.join("")}});var n=r.of;if(e.StringUtils.isString(n))o.of="window"===n?window:n;else if(n&&!e.StringUtils.isString(n)&&"x"in n&&"y"in n){var s=n.x,l=n.y,a=document.createEvent("MouseEvents");a.initMouseEvent("click",!0,!0,window,1,s,l,s,l,!1,!1,!1,!1,0,null),o.of=t.Event(a,{pageX:s,pageY:l})}else o.of=n;return r.collision&&(o.collision=r.collision),r.using&&(o.using=r.using),o},t.ui.position.flipcenter={left:function(r,i){var o=r.left;t.ui.position.flip.left.call(this,r,i);var n=i.within,s=n.isWindow?n.scrollLeft:n.offset.left,l=n.width,a=r.left-i.collisionPosition.marginLeft,p=s-a,u=a+i.collisionWidth-l-s;(p>0||u>0)&&("right"===i.at[0]?o-=i.targetWidth/2:"left"===i.at[0]&&(o+=i.targetWidth/2),o-=("rtl"===e.DomUtils.getReadingDirection()?-1:1)*(i.elemWidth/2),r.left=Math.max(0,o))},top:function(e,r){var i=e.top;t.ui.position.flip.top.call(this,e,r);var o=r.within,n=o.isWindow?o.scrollTop:o.offset.top,s=r.within.height,l=e.top-r.collisionPosition.marginTop,a=n-l,p=l+r.collisionHeight-s-n;(a>0||p>0)&&("top"===r.at[1]?i+=r.targetHeight/2:"bottom"===r.at[1]&&(i-=r.targetHeight/2),i+=r.elemHeight/2,e.top=Math.max(0,i))}};var r=t.ui.position.flip.left;t.ui.position.flip={left:r.bind(this),top:function(e,t){var r,i,o=t.within,n=o.offset.top+o.scrollTop,s=o.height,l=o.isWindow?o.scrollTop:o.offset.top,a=e.top-t.collisionPosition.marginTop,p=a-l,u=a+t.collisionHeight-s-l,c="top"===t.my[1]?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,d="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,_=-2*t.offset[1];p<0?((r=e.top+c+d+_+t.collisionHeight-s-n)<0||ru&&(e.top+=c+d+_):u>0&&((i=e.top-t.collisionPosition.marginTop+c+d+_-l)>0||Math.abs(i)